﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dir
{
    public class AuditKeyWords
    {
        
        public static bool KeyWordsAll(string word)
        {
            string[] keyWords = new string[]
            {"abstract", "event", "new", "struct", "as", "explicit", "null", "switch", "base",
                "extern", "object", "this", "bool", "false", "operator", "throw","break","finally",
             "out", "true", "byte", "fixed",	"override",	"try", "case", "float",	"params","type",                           
             "catch", "for", "private", "uint", "сhar", "foreach", "protected", "ulong", "checked",                              
             "goto",	"public", "unchecked", "class", "if", "readonly", "unsafeconst", "implicit",
             "ref", "ushort continue", "in",	"return", "using", "decimal", "int", "sbyte", "virtual",                         
             "default", "interface",	"sealed", "volatile", "delegate", "internal", "short", "void",                           
             "do", "is", "sizeof", "while", "double", "lock", "stackalloc",	"else",	"long","static",                             "enum","namespace", "string","from","get",	"group", "into", "join", "let", "orderby", "partial",
             "select", "set","value", "var", "yield", "where", "const" 
            };
            bool b = false;
            foreach (string w in keyWords)
            {
                if (w.Equals(word))
                {
                    b = true;
                    break;
                }
                else b = false;
                   
            }
            return b;
        }

        public static bool KeyWordsC(string word)
        {
            string[] keyWords = new string[]
            {"#", "include", "abstract", "event", "new", "struct", "explicit", "switch",                                  
                "extern",  "this", "bool", "false", "operator", "throw","break","finally",
             "out", "true", "override",	"try", "case", "float",	                            
             "catch", "for", "private",  "сhar", "foreach", "protected",                             
             "goto",	"public", "class", "if", 
             "continue", "return", "using", "int", "virtual",                         
             "default", "interface",	"sealed", "volatile", "delegate", "internal", "short", "void",                           
             "do", "sizeof", "while", "double", 	"else",	"long","static",                             
             "enum","namespace", "string", "typedef","define", "auto","const", "default", "register", 
             "signed", "union", "unsigned",
             "list",  "cstdio","cstdlib", "iostream", "&lt", "&gt"};

            string[] typeWords = new string[]
            {
                "void","char", "wchar_t", "signed char", "short int", "int", "long int",
                "unsigned char", "unsigned short int", "unsigned int", "unsigned long int",
                "float", "double", "long double", "bool"
            };

            bool b = false;
            foreach (string w in keyWords)
            {
                if (w.Equals(word))
                {
                    b = true;
                    break;
                }
                else b = false;
            }
            return b;
        }

        public static bool KeyWordsPas(string word)
        {
            string[] keyWords = new string[]
            {
                "and", "array", "as", "asm", "begin", "case","class", "const", "constructor",
                "destructor", "dispinterface","div", "do", "downto","else", "end","except", "exportrs",
                "file", "finalizashion", "finally", "for", "function", "goto","if", "in", "implementation",
                "inherited", "initializathion", "inline", "interface", "is", "label", "library", "mod",
                "nil", "not","object", "of", "or", "out", "packed", "procedure", "program", "property",
                "raise", "record", "repeat", "resourcestring", "set", "shl", "shr", "string", "then",
                "threadvar", "to", "try", "type", "unit", "until", "uses", "var", "while", "with", "xor",
                "string", "char", "integer", "real", "boolean"
            };

            string[] typeWords = new string[]{"class", "string", "char", "integer", "real", "boolean", "type"};

            string[] derectWords = new string[]{"write", "writeln", "read", "readln"};

            bool b = false;
            foreach (string w in keyWords)
            {
                if (w.Equals(word))
                {
                    b = true;
                    break;
                }
                else b = false;

            }
            return b;
        }

    }
}
